package com.one.group.service;

import com.mybatisflex.core.service.IService;
import com.one.group.model.dto.VehicleAddDto;
import com.one.group.model.dto.VehicleQueryDto;
import com.one.group.model.entity.Vehicle;
import com.one.group.model.vo.VehicleListVo;
import com.one.group.model.vo.VehicleSearchVo;

import java.util.List;

public interface VehicleService extends IService<Vehicle> {

    /**
     * 车辆列表查询
     * @param vehicleQueryDto
     * @return
     */
    List<VehicleListVo> findVehicleByQueryDto(VehicleQueryDto vehicleQueryDto);

    /**
     * 添加车辆
     * @param vehicleAddDto 车辆添加信息
     * @return 添加结果
     */
    boolean addVehicle(VehicleAddDto vehicleAddDto);

    /**
     * 删除车辆
     * @param id 车辆ID
     * @return 删除结果
     */
    boolean deleteVehicle(Long id);

    /**
     * 批量删除车辆
     * @param ids 车辆ID列表
     * @return 删除结果
     */
    boolean batchDeleteVehicles(List<Long> ids);

    /**
     * 根据车牌号搜索车辆
     * @param plateNo 车牌号（支持模糊搜索）
     * @return 车辆搜索结果列表
     */
    List<VehicleSearchVo> searchVehiclesByPlateNo(String plateNo);
}
